package com.well.rpc.event;

import com.well.rpc.model.EventType;
import com.well.rpc.model.TransData;
import io.netty.channel.ChannelHandlerContext;

/**
 * 此接口规范整个系统远程交互
 */
public interface AppEvent {


    default void addEvent(){};

    /**
     *  处理事件
     * @param channelHandlerContext
     * @param transData
     */
     void doEvent(ChannelHandlerContext channelHandlerContext, TransData transData);

    /**
     * 处理事件异常信息
     * @param channelHandlerContext
     */
     default void errorEvent(ChannelHandlerContext channelHandlerContext, Throwable cause) {};

    /**
     * 获取 event 类型
     * @return
     */
     EventType eventType();
}
